package com.richinfo.util;

/**
 * 响应码
 * Created by alex on 2016/3/2.
 */
public enum RespCodeEnum {
    SUCCESS("0", "成功")
    ,ERROR("1", "失败")
    ,ERROR_2000("2000", "暂无更新")
    
    ,ERROR_1004("1004", "系统异常")
    ,ERROR_1012("1012", "接口繁忙，请稍后再试")
    
    ,apiVerifyFail("10000", "接口认证失败")
    
    ,ERROR_1000("1000", "请求参数不能为空")
    ,ERROR_1032("1032", "请求参数格式不正确")
    ,ERROR_1044("1044", "请求报文格式错误")
    ,ERROR_1060("1060", "请求参数错误")
    
    ,ERROR_1001("1001", "用户名不存在")
    ,ERROR_1002("1002", "未开户，请联系管理员")
    ,ERROR_1003("1003", "用户名或密码错误")
    ,ERROR_1007("1007", "帐号或密码错误")
    ,ERROR_1008("1008", "账号登录报文解密失败")
    ,ERROR_1009("1009", "获取portal令牌无效")
    ,ERROR_1010("1010", "请输入正确的密码")
    ,ERROR_2016("2016", "获取portal账号失败")
    ,ERROR_2017("2017", "您输入的验证码有误，请重新输入")
    ,ERROR_2018("2018", "验证码已过期，请重新输入")
    ,ERROR_2019("2019", "请输入验证码")
    ,ERROR_1016("1016", "免登录失败")
    ,ERROR_1054("1054", "您的登录次数过多，30分钟内禁止登录")
    ,ERROR_1055("1055", "用户已设置过手势密码")
    ,ERROR_1056("1056", "客户端版本太旧，请重新设置手势密码")
    ,ERROR_1057("1057", "手势密码错误")
    ,ERROR_1058("1058", "校验类型不存在")
    ,ERROR_1059("1059", "用户还没有设置手势密码")
    ,ERROR_1063("1063", "电话号码错误")
    ,ERROR_1064("1064", "服务端获取手机号码失败")
    ,ERROR_1065("1065", "获取验证码失败")
    ,ERROR_1040("1040", "新密码和旧密码不能相同")
    ,ERROR_1041("1041", "旧密码输入错误")
    ,pimsVerifyError("10000", "pims认证异常")
    
    ,ERROR_1013("1013", "星标联系人已存在")
    ,ERROR_1014("1014", "星标联系人不存在")
    
    ,ERROR_1045("1045", "待办、待阅消息不存在")
    ,ERROR_1019("1019", "推送的待办消息已存在，请勿重复调用推送")
    ,ERROR_1020("1020", "待办已被其他审批人已处理")
    
    ,ERROR_1011("1011", "图像上传失败")
    ,ERROR_1022("1022", "视频格式错误")
    
    ,ERROR_1036("1036", "查询数据为空")
    ,ERROR_1038("1038", "无法查询到该条数据")
    
    ,ERROR_1043("1043", "日志评论人不存在")
    
    ,ERROR_1042("1042", "您的手机号码为空")
   
    
    ,ERROR_1046("1046", "轻应用不存在")
    ,ERROR_1018("1018", "没有找到对应的应用")
    ,ERROR_1047("1047", "修改轻应用订阅状态失败")
    ,ERROR_1048("1048", "调用外部轻应用接口失败")
    ,ERROR_1049("1049", "轻应用请求路径不存在")
    ,ERROR_1051("1051", "应用未订阅")
    ,ERROR_1052("1052", "用户没有授权")
    ,ERROR_1061("1061", "应用已经订阅")
    ,ERROR_1062("1062", "服务号不存在")
   
    ,ERROR_1068("1068", "传入时间不得大于数据库最大时间")
    
    ,ERROR_2("2", "发起群聊")
    ,ERROR_4("4", "群聊加人")
    ,ERROR_5("5", "群聊删人或群成员主动退出")
    ,ERROR_6("6", "群主解散群聊")
    ,ERROR_7("7", "修改群名称成功")
    ,ERROR_MSG_NOTICE("20", "消息提醒")
    ,ERROR_MSG_NOTICE_NEW("21", "消息提醒")
    ,ERROR_SYS_NOTICE("22", "消息提醒")
    
    //提供给外部接口
    ,ERROR_2001("2001", "认证类型错误")
    ,ERROR_2002("2002", "登录令牌非法")
    ,ERROR_2003("2003", "访问令牌非法")
    ,ERROR_2004("2004", "访问令牌过期")
    ,ERROR_2005("2005", "登录令牌过期")
    ,ERROR_2006("2006", "登录令牌不存在")
    ,ERROR_2010("2010", "用户信息不能为空")
    ,ERROR_2011("2011", "用户名称格式错误")
    ,ERROR_2012("2012", "用户名称已存在")
    ,ERROR_2013("2013", "添加用户失败")
    ,ERROR_2014("2014", "修改用户失败")
    ,ERROR_2015("2015", "删除用户失败")
    
    ,ERROR_1005("1005", "访问令牌不存在")
    ,ERROR_1006("1006", "访问令牌过期")
    ,ERROR_1021("1021", "获取的access_token访问令牌失败，重新获取")
    
    ,ERROR_1050("1050", "票据不存在")

    ,ERROR_2020("2020", "帐号或手机号码错误")
    ,ERROR_2021("2021", "您输入的验证码有误，请重新输入")

    ;
    /**
     * 响应码
     */
    private String code;
    /**
     * 响应描述，用于内部
     */
    private String desc;
    /**
     * 显示消息，用于外部
     */
    private String showMsg;
    private RespCodeEnum(String code, String desc){
        this.code = code;
        this.desc = desc;
        this.showMsg = "参数异常";
    }

    private RespCodeEnum(String code, String desc, String showMsg){
        this(code, desc);
        this.showMsg = showMsg;
    }

    public String getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    public String getShowMsg() {
        return showMsg;
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("{RespCodeEnum:{");
        sb.append("code:'").append(code).append("'");
        sb.append(", desc:'").append(desc).append("'");
        sb.append(", showMsg:'").append(showMsg).append("'");
        sb.append("}, super:").append(super.toString()).append("}");

        return sb.toString();
    }
}
